package com.chunguang.study.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.chunguang.study.bean.RoncooUser;
import com.chunguang.study.mapper.RoncooUserMapper;
import com.chunguang.study.service.UserService;

@Service
@Transactional
public class UserServiceImpl implements UserService{
	@Autowired
	private RoncooUserMapper userDao;
//	@CacheConfig：缓存配置
//	@Cacheable：应用到读取数据的方法上，即可缓存如查找：先从中果没有再调 应用到读取数据的方法上，即可缓存如查找：先从中果没有再调 应用到读取数据的方法上，即可缓存如查找：先从中果没有再调 应用到读取数据的方法上，即可缓存如查找：先从中果没有再调 应用到读取数据的方法上，即可缓存如查找：先从中果没有再调 应用到读取数据的方法上，即可缓存如查找：先从中果没有再调 应用到读取数据的方法上，即可缓存如查找：先从中果没有再调 应用到读取数据的方法上，即可缓存如查找：先从中果没有再调 应用到读取数据的方法上，即可缓存如查找：先从中果没有再调 应用到读取数据的方法上，即可缓存如查找：先从中果没有再调 应用到读取数据的方法上，即可缓存如查找：先从中果没有再调 应用到读取数据的方法上，即可缓存如查找：先从中果没有再调 用方法获取数据，然后把添加到缓存中 。适用于查找 适用于查找 适用于查找
//	@CachePut：主要针对方法配置，能够根据的请求参数其结果进行缓存和 主要针对方法配置，能够根据的请求参数其结果进行缓存和
//	 不同的
//
//	是，它每次都会触发真实方法的调用 。适用于更新 适用于更新 适用于更新 和插入
//	@CacheEvict：主要针对方法配置，能够根据一定的条件缓存进行清空 主要针对方法配置，能够根据一定的条件缓存进行清空 。适用于删除 适用于删除 适
//	
	
	@Cacheable(value = "userCache")  
	@Override
	public RoncooUser getUserById(Integer id) {
		 System.out.println("开始查询数据库===========id="+id);
		return userDao.selectByPrimaryKey(id);
	}
	@Cacheable(value = "save")  
	@Override
	public void save(RoncooUser user) {
		 userDao.insert(user);
	}

}
